Method and apparatus for automatically processing job interruptions caused by a portable memory device in a print system

ABSTRACT

A print device has a port, a print engine, a processing device and a memory. The print device is configured to detect that a portable memory device has become communicatively connected to the port, retrieve a digital document file to be printed and a print instruction from the portable memory device, determine that a first print job is being performed in the print device, suspend the first print job, determine a second print job derived from the digital document file, and automatically perform the second print job based on the print instruction. The print device further detects that the second print job has been completed or interrupted, and automatically resumes the first print job. If the second print job is directed to the same output tray as the first print job, the print device may also print a separator sheet to the output tray before performing the second print job.

BACKGROUND

This disclosure relates to a system for automatically printing documentsthat are stored on a portable memory device with little or no useractivation of a local user interface (LUI), and in particular to amethod and apparatus for automatically processing job interruptionscaused by plugging in a portable memory device to a printer.

In performing a conventional print job in a document system or amulti-function peripheral (MFP), such as sending a file to the printervia network or plugging in a USB to a printer, a user normally needs toperform several steps. For example, in a normal print job in a networkedenvironment, the user needs to send a print job from a computer and walkto the printer to retrieve the printed document. In another example, theuser plugs into the printer a USB or other media card that storesdocuments to be printed. The user needs to use the LUI to browse thefile directory on the USB card and select the files to be printed. Insome scenarios, a print job that prints the documents from the USB cardin one printer may be interrupted, and it needs to be resumed on anotherprinter. In other scenarios, when the user plugs a USB card into theprinter, a currently active print job in the printer may still exist. Inthese scenarios, how to automatically process job interruptions withlittle or no user activation of an LUI even adds more complexities tothe print job processing in the document system.

This document describes a system that may address at least some of theissues described above.

SUMMARY

In some scenarios, a document printing system includes a print devicethat has a port configured to communicate with a portable memory device,a print engine, a processing device communicatively coupled to the portand the print engine, and a non-transitory, computer-readable mediumcontaining programming instructions that are configured to cause theprocessing device to perform certain functions. The print device isconfigured to detect a trigger event by determining that a portablememory device has become communicatively connected to the port, andretrieve a digital document file to be printed and a print instructionfrom the portable memory device. The print device also determines that afirst print job is being performed in the print device, suspendsperformance of the first print job, determines a second print job thatis derived from the digital document file, and automatically causes theprint engine to perform the second print job based on the printinstruction. The print device further detects that the second print jobhas been completed or interrupted, and automatically resumes the firstprint job upon detecting that the second print job has been completed orinterrupted.

In some or other scenarios, the print device may determine an outputpaper tray to which a document represented in the digital document fileis to be printed, and print the document to the output paper tray. Theprint device may automatically determine the output paper tray based onat least one of the following: a capability of the output paper tray, arequirement of the second print job, or the print instruction.Alternatively, and/or additionally, the print device may be configuredto prompt a user to manually select the output paper tray. The printdevice may further determine an original paper tray to which the firstprint job was directed. If the output paper tray is the same as theoriginal paper tray, the print device may output a separator sheetbefore printing the document to the output paper tray.

The print device may also include a communication port for communicatingwith a data store that contains a print history and obtaininginformation from the print history. When retrieving the digital documentfile to be printed from the portable memory device, the print device mayaccess the print history from the data store, and use the print historyto determine that the digital document file has not been printed andretrieve that digital document file to be printed. When the second printjob has been completed, the print device may also transmit acommunication to the data store to update the print history to reflectthat the digital document file is printed.

Additionally, and/or alternatively, the print device may be configuredto retrieve additional digital document files from the portable memorydevice. The second print job may also be derived from the additionaldigital document files. In the process of determining that the secondprint job has been completed, the print device may be configured to (i)detect that the digital document file in the portable memory device isprinted; (ii) check the additional digital document files to determine anext digital document file to be printed; (iii) print a documentrepresented in the next digital document file based on the printinstruction; and (iv) repeat steps (ii) and (iii) until all documents ofthe additional digital document files are printed.

Methods may be implemented in the above illustrated print device toautomatically process job interruptions in the document printing system.In some or other scenarios, a method may include detecting a triggerevent by determining that a portable memory device has becomecommunicatively connected to a port of the print device; retrieving adigital document file to be printed and a print instruction from theportable memory device; determining that a first print job is beingperformed in the print device; suspending performance of the first printjob; determining a second print job that is derived from the digitaldocument file; automatically performing the second print job based onthe print instruction; detecting that the second print job has beencompleted or interrupted; and automatically resuming the first print jobupon detecting that the second print job has been completed orinterrupted.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a system for automatically processingjob interruptions caused by a portable memory device in a print system.

FIG. 2 illustrates a diagram of an example of a print device.

FIGS. 3A and 3B illustrate a diagram of an example of a process forautomatically printing, interrupting and resuming a print job.

FIG. 4 is a diagram of an example of a process for handling the outputtray of a print job.

FIG. 5 is a diagram of an example of a process for automatic selectionof documents to print.

FIG. 6 is a diagram of an example of a process for updating a printhistory.

FIG. 7 is a block diagram of elements of a computing device on which thevarious systems and methods in this document could be implemented.

DETAILED DESCRIPTION

As used in this document, the singular forms “a,” “an,” and “the”include plural references unless the context clearly dictates otherwise.Unless defined otherwise, all technical and scientific terms used hereinhave the same meanings as commonly understood by one of ordinary skillin the art. As used in this document, the term “comprising” means“including, but not limited to.”

The term “local user interface” or “LUI” of a device refers to a userinterface peripheral that is mounted to or built in an electronic devicefor users to perform various operations on the device. A local userinterface typically includes a combination of hardware (such as akeyboard, keypad, touch-sensitive display and/or microphone) andsoftware for presenting prompts to a user and receiving input from theuser via the hardware.

The term “automatically” refers to causing a machine to perform anaction without requiring any user interaction, such as requiring theuser to push a button or enter a command, before the machine willperform the action.

The term “portable memory device” refers to a portable device that has anon-transitory storage medium capable of storing data, such as auniversal serial bus (USB) flash drive, a secure digital (SD) card ormicroSD card, a portable hard disk, a portable media player or any otherexternal storage device that has such storing capability. In variousembodiments, the portable memory device does not need to include aprocessor. The portable memory device will typically have a file system.The portable memory device will include a data transfer device, such asa USB connector for a USB drive, input/output ports of an SD card or aradio unit (transceiver) of a near-field communication device such as aBluetooth device.

A “computer” or “computing device” refers to a device that includes aprocessor and non-transitory, computer-readable memory. The memory maycontain program instructions that, when executed by the processor, causethe computing device to perform one or more operations according to theprogram instructions. Examples of computing devices include personalcomputers, servers, mainframes, gaming systems, televisions, andportable electronic devices such as smartphones, smart watches, wearableelectronic devices, digital cameras, fitness tracking devices, tabletcomputers, laptop computers, media players and the like.

The term “physical document” refers to a hard-copy document on asubstrate that is printed off of a printer or that can be scanned into adigital form. It may consist of a single sheet or a set of sheets.

The term “document system” refers to a system of devices thatcommunicate with each other for handling document related jobs, inparticular, printing, copying, electronic storing, facsimile,transmitting or receiving (including fax, email, or communicating with aremote device), and/or image scanning of a physical document.

The term “digital document file,” “document file,” “electronic document”or “electronic document file” refers to a digital representation of adocument such as a word processor file, a PDF file, or a bitmap file(e.g. TIFF, JPG, PNG files etc.) that is stored in a computer readablememory or a storage medium. A document file may be an electronicrepresentation of a physical document that contains one or multiplepages.

The term “print device” refers to a machine having hardware capable ofreceiving a digital document file and use the information from the fileand associated print instructions to print a document represented in thefile on a substrate and produce a physical document. Components of aprint device typically include a print engine, which includes printhardware such as a print head, which may include components such as aprint cartridge containing ink, toner or another print material, as wellas a document feeding system configured to pass a substrate through theprint device so that the print head can print characters and/or imageson the substrate. A print device may have additional capabilities suchas scanning or faxing and thus may be a multifunction device.

A “print job” refers to a set of instructions that causes a print deviceto print one or more document files. In this document, the set ofinstructions may be from a user to a print device, or it may begenerated by a system or the print device after detecting a triggerevent.

With reference to FIG. 1, a document system 100 may include one or moreprint devices, for example, print devices 120, 121, computers 110, oneor more data stores 122, and/or communication links 123. Each printdevice 120, 121 is capable of reading a portable memory device 101, 102for instant printing of a digital document file. One or more portablememory devices 101, 102 may store the digital document file with printinstructions in a designated folder, e.g. a folder with a designatedfilename such as “\Insta-print.” A print device, e.g. 120, may extractthe digital document file and print instructions from the portablememory device 101 or 102 and print a digital document file based on theprint instructions.

In some scenarios, the print device 120 can detect a trigger event,e.g., a portable memory device 101 or 102 is plugged into or otherwisecommunicatively connected to the print device 120, and/or the portablememory device contains a folder of the designated name. Then, inresponse to detecting the trigger event, the print device 120 willidentify one or more document files to be printed from the portablememory device. The print device will also read the print instructionsfrom the portable memory device 101 or 102 or the default printinstructions from the print device itself. The print device will alsodetermine whether there is any current print job active in the printdevice. If there is no current print job active, the print device willinstantly print all of the document files stored in the designatedfolder of the portable memory device. If there is a current print jobactive, the print device will suspend performance of the current activeprint job and start printing all of the document files stored in thedesignated folder of the portable memory device.

Additionally, before suspending any current print job, the print devicemay determine the priority of the current print job and the priority ofany new print job derived from the document files stored in the portablememory device. If the priority of the current print job is lower thanthat of the new print job, the print device suspends the current printjob and performs the new print job; otherwise, the print device willcontinue finishing the current print job.

Additionally, and/or alternatively, the print device may also determinethe output tray of the new print job, or prompt the user to select theoutput tray. If the output tray is the same as the original output trayto which the current print job is directed, the print device may outputa separator sheet before performing the new print job. Otherwise, theprint device may directly print to the output tray.

Additionally, the system may include a data store 122, which is a set ofone or more computer-readable medium devices that stores a printhistory, which is updated whenever a print job is complete. The datastore 122 may be located remotely and accessible to any print device viaa communication link 123. Alternatively, the data store 122 may residelocally on the print device. In some scenarios, the print history maystore a list of names of the document files that have been printed. Theprint history may be a general print history that applies to all users.In other scenarios, the print history may be associated with a user andstores the information about the past print jobs of the user.

After detecting the trigger event, and identifying one or more documentfiles to be printed from the portable memory device, but beforeretrieving the documents to be printed, the print device may check thedocument files on the portable memory device against the print historyand determine what documents files need to be printed. Then the printdevice may retrieve the document files to be printed from the portablememory device.

Alternatively, and/or additionally, the portable memory device 101, 102may be pre-configured with default instructions by a computing device110 via a web user interface (web-UI). Alternatively, the computingdevice 110 may be used to create the file system on the portable memorydevice. Additionally, the user may plug the portable memory device intoa computer and re-configure the instructions at any time.

In FIG. 2, various components in an example of a print device aredescribed in detail. The print device 201 may include a processingdevice 209 that is communicatively coupled to a print engine 202 andconfigured to cause the print engine to print document files and producethe paper printouts 204. The processing device 209 may also becommunicatively coupled to a communication port 211 and cause thecommunication port to communicate with a data store or other device,wired or wirelessly.

The print device will automatically print the document files stored onany portable memory device that is connected or communicatively coupledto the print device, without user intervention. The print device mayalso include a port 203 for plugging in a portable memory device.Additionally, the print device may include an event triggering circuit208 that triggers the print device to perform certain operations. Theevent triggering circuit may include a portable memory device detectioncircuit 207 that may be communicatively coupled to the port 203. When aportable memory device 205 is plugged into the port 203, the portablememory device detection circuit may detect the status change of the portand subsequently generate a trigger to the event trigger circuit,indicating that the user is initiating a new print job.

Alternatively and/or additionally, the print device may be capable ofpairing with a portable memory device wirelessly, such as via Wi-Fi,Bluetooth or other near-field or short range communication protocols.The event triggering circuit may also include a communication detectioncircuit that may be communicatively coupled to the communication port211. The communication detection circuit may be capable of detectingwhen a portable memory device is communicatively coupled to thecommunication port 211 of the print device. The communication port 211may also be capable of communicating with a data store and allowing theprint device to update and retrieve a print history in the data store.The print device will include program instructions that can cause theprint device to automatically take certain actions in response todetecting that a memory device has been communicatively coupled orconnected to the print device. This is further explained with referenceto FIGS. 3A and 3B.

In FIG. 3A, methods for accomplishing various tasks in the systemdisclosed in FIGS. 1 and 2 are provided. In some scenarios, a method forautomatic printing of a document may include detecting a trigger event301 that is indicative that a user has initiated a print job. Indetecting the trigger event, the print device may receive a trigger,indicating that a portable memory device is plugged into the port of theprint device or communicatively connected to the print device.

Additionally, the system may retrieve a print instruction from theportable memory device 304. In one example, a user has plugged a USBflash drive into the print device. The USB flash drive may have adesignated folder, e.g. a file named “\insta-print” or any other namedesignated for storing document files to be printed. The designatedfolder, the root of the portable memory device file directory, or asub-folder thereof, may also be designated for storing the documentfiles to be printed. The designated folder on the portable memory devicemay also be designated for storing the print instructions, such asorientation, margins, scaling, print resolution, effects, colormanagement and finishing options. Optionally, once the print devicedetects the trigger event, the print device may authenticate the user302, such as by prompting the user for a credential such as a usernameand password, and upon verification of the credential, the print devicemay access the print history associated with the user from the datastore 303.

In some scenarios, the print instructions are contained in a printinstruction file, such as in the XML format, and the print device mayparse the XML print instruction file and extract relevant fields forprint instructions. Alternatively and/or additionally, the printinstructions may be stored in a non-transitory memory built in the printdevice. The print device may include program instructions that canretrieve the print instructions from a default file in the portablememory device (e.g. print-instruction.xml) or may use the default printinstructions stored in the print device.

The print device may further identify the filenames of one or moredocument files on the portable memory device 305, determine the firstfilename 350 and determine whether to print the document file associatedwith the first filename 306. The process of determination 306 maydetermine to print the document file 308 or not to print the documentfile 307, the details of which will be explained in FIG. 5. Once theprint device determines not to print the document file 307, the printdevice may determine the next filename 315 in the remaining documentfiles and repeat the process of whether to print the document file 306associated with the next filename that is checked. The print device mayrepeat checking all of the remaining document files in the portabledevice until all documents of the document files are printed.Alternatively and/or additionally, the device may allow the user toterminate a print job, for example, by making selections on the LUI orpushing a hard “Cancel” button on the device. Optionally, beforedetermining the next filename 315, the print device may determinewhether the user has terminated 314, and if the user has terminated ajob, the device will stop 316; otherwise, the device will continue.

In FIG. 3B, once the print device determines to print the document file,the print device will retrieve the document files from the portablememory device 309. The print device will determine a new print job(second print job) derived from the retrieved document files 312. Theprint device may also determine whether there is a current print job(first print job) being performed in the print device 310. If the printdevice so determines, it may suspend performance of the current (first)print job 319, and automatically perform the new (second) print jobbased on the print instructions 320. Otherwise, the print device mayinstantly perform the new (second) print job based on the printinstructions 320.

Optionally, before suspending the current (first) print job 319, theprint device may determine the priority of the current print job 311,and determine whether the priority of the current print job is lowerthan that of the new print job 313. If the print device so determines,the print device may proceed to suspend the current (first) print job319. Otherwise, the print device may continue finishing the currentprint job. Additionally, when the priority of a current print job in theprint device is higher than the priority of a new print job derived fromdocument files in the portable memory device, the print device maysimply enter into an idle mode and do nothing.

Alternatively, within a time-out period 317, the print device maycontinuously check whether there is a current print job active 310. Incase the current print job is finished within the time-out period, theprint device will determine that there is no current print job, then theprint device will proceed to perform the new print job 320. After thetime-out period, the print device may stop 318 or enter into idle mode,waiting for further commands or triggering events to occur.

If the print device has suspended the current print job 319 and startedto perform a new (second) print job 320, the print device will continueto monitor the status of the new (second) print job. If the print devicedetermines that the new (second) print job has been completed orinterrupted 321, the print device may resume the suspended first printjob (if any) 324.

In some scenarios, the print device may be configured to presetpriorities for print jobs in the print device, which will be describedin further detail below. The print device may allow a user, such asreceive a user input via a LUI or remotely, to set the priorities of theprint jobs depending on the types of the print jobs. A type of a printjob may include a print job that is derived from a regular print demand,or a print job derived from a document file in a portable memory device.Alternatively, and/or additionally, the print device may be configuredto set priorities of the print jobs associated with multiple ports, suchas multiple USB ports, e.g. USB1 and USB2, or other ports, e.g. securecard (SD) slot, or a combination thereof. In some scenarios, the printdevice may allow user to set the priorities of print jobs that arederived from digital document files in a portable memory devicedifferently depending what port to which the portable memory device isplugged. For example, the print device may allow user to set thepriorities of print jobs associated with USB1 port to be higher than thepriorities of print jobs associated with USB2 port. Accordingly, theprint device may handle the interruption of a current print jobaccording to the priorities.

When a user plugs a portable memory device in a print device while thereis a current print job, the print device may detect the portable memorydevice, determine the type of the current print job and subsequentlydetermine the priority of the current print job based on the type of theprint job, compare the priority of the current print job with that of aprint job associated with the portable memory device. If the priority ofthe print job associated with the portable memory device is higher thanthat of the current print job, the print device will interrupt thecurrent print job as described above. If the priority of the print jobassociated with the portable memory device is lower than or equal tothat of the current print job, the print device will continue thecurrent print job.

In a non-limiting example, the print device may receive a user input toset the priority of a print job derived from a document file in aportable memory device higher than that of a print job derived from aregular print demand. In such a case, when the user plugs a portablememory device in a print device while there is a current print jobderived from a regular print demand, the print device may detect theportable memory device and interrupt the current print job derived fromthe regular print demand, and perform a new print job associated withthe portable memory device.

In another non-limiting example, the print device may receive a userinput to set the priority of a print job derived from a document file ina portable memory device lower than that of a print job derived from aregular print demand. In such a case, when the user plugs a portablememory device in a print device while there is a current print jobderived from a regular print demand, the print device may detect theportable memory device and determine to wait for the current print jobderived from a regular print demand to complete, then perform a newprint job associated with the portable memory.

Optionally, once a document file is printed (whether in current or newprint job), the device may delete the printed document file from theportable memory device 322. This is called the auto-delete option andcan be part of the print instruction. Alternatively and/or additionally,if the auto-delete option is not included in the print instruction, thedevice may proceed to update the print history in the data store 323,which is further described with reference to FIG. 6.

In FIG. 4, with respect to performing a new (second) print job 320 (FIG.3B), in some scenarios, the print device may determine which output traythe new print job is directed to. The print device may automaticallydetermine the output tray of the new print job 402 based on at least onethe following: capability of the output paper tray, requirement of thenew print job or the print instructions. For example, the capability ofthe output paper tray may include the paper size and/or the remainingnumber of papers in the tray. The print device may check the paper sizein the print instructions and compare that with the capability of theoutput paper tray to determine whether the output paper tray is adequatefor the new print job. If the output paper tray is adequate for the newprint job, the print device may automatically determine that outputtray. In another example, the capability of the output paper tray mayalso include the number of remaining papers in the tray. Similarly, theprint device may compare the number of remaining papers in the tray withthe number of pages for the document file to be printed and decidewhether the output tray is adequate. Alternatively, and/or additionally,the print device may also prompt a user to manually select the outputpaper tray 404 via a LUI.

In some scenarios, the print device may also determine the originaloutput tray for the suspended print job (if any) 406, and determinewhether it is the same output tray for the new print job 408. If the newprint job and the suspended print job are directed to the same outputtray, the print device may output a separator or divider sheet beforeperforming the new print job 410. If the new print job and the suspendedprint job are directed to different output trays, the print device maysimply perform the print job and print to the output tray 412.

Now, in FIG. 5, the methods for determining which of the document fileson the portable memory device are to be printed 306 (also in FIG. 3A)are further explained. The print device will compare the identifiedfilename of the document file on the portable memory device with theprint history associated with the user 501. In some scenarios, the printdevice may access a data store remotely via the communication port (211in FIG. 2), or a data store residing locally in the print device, andretrieve the print history associated with the user. In other scenarios,a general print history is stored in the data store and the print devicemay access the general print history from the data store. The printhistory may include the names of the document files that have beenprinted from previous print jobs, each name being associated with atimestamp. In an example, the timestamp may include the timestamp of thetime when the associated document file on the portable memory device waslastly printed. The print history may be stored in the data store in anyof the conventional formats, such as in a file system of the operatingsystem of the server or in a database structure, such as in a SQLdatabase, or as a flat file.

With further reference to FIG. 5, the print device may check whether thefilename of the document file on the portable memory device exists inthe print history 502. If so, the print device may determine that thedocument file on the portable memory device has already been printedbefore. The print device may further check whether the timestampassociated with the document file on the portable memory device has beenupdated since the last print job. For example, the device may comparethe timestamp associated with the document file on the portable memorydevice with the timestamp associated with the filename in the printhistory 503. If the timestamp associated with the document file on theportable memory device is more recent than that associated with thefilename in the print history, the device may determine that thedocument file on the portable memory device has been modified and thusmay determine that the document file needs to be printed 504. Otherwise,the device may determine that the document file on the portable memorydevice has already been printed.

Once the device determines that a document file on the portable memorydevice has already been printed before, the device may either determinenot to print 506, or prompt the user to make a selection. For example,the device may display a message on the LUI to notify the user that apreviously printed document is identified and ask the user whether toselect to print 505. Depending on user's selection, the device mayaccordingly determine to print the document file 504 or not to print thedocument file 506.

Alternatively and/or additionally, the print device may also check thefilenames in the print history to see if the corresponding files alsoexist in the portable memory device 507. If the filenames in the printhistory do not have corresponding files in the portable memory device,the print device may determine that the filenames in the print historyare stale and therefore delete the filenames from the print history 508.

In FIG. 6, the methods for updating the print history in the data store(323 in FIG. 3B) are further explained. In some scenarios, the printdevice will check whether the filename of the printed document file onthe portable memory device already exists in the print history 601. Ifthe name of the printed document file does not exist in the printhistory, the device may insert the filename of the printed document fileand the associated timestamp, which is the time the document file wasprinted on the portable memory device 602. If the filename of theprinted document file already exists in the print history, it means thatthe printed document file has already been printed before. The devicemay update the timestamp associated with this filename in the printhistory with the time the document file was lastly printed 603.

The embodiments described in FIGS. 1-6 can be implemented in variousways to accommodate various print tasks without the use of the LUI. Forexample, the document printing system described in FIG. 1 may allow userto switch between multiple print devices e.g. 120, 121, and complete aprint job using multiple print devices while automatically handlingprint job interruptions. In some scenarios, when printing on one printdevice is interrupted before a print job is completed, the documentprinting system may allow the user to simply unplug the portable memorydevice and plug into another print device to pick up the print job. Forexample, the user may have placed multiple document files on theportable memory device, e.g. five document files, and plug in theportable memory device into a print device for printing. The printdevice may have printed the first two document files. During theprinting of the third document file or before all of the five documentfiles are printed, the print device may have stopped for some reason.The reason for print interruption may be that the print engine of theprint device has run out of consumables (paper, toner, etc.) and isforced to stop; or the user has forcibly unplugged the portable memorydevice (e.g. the USB drive) from the print device.

At the moment the print job is interrupted, the print device will updatethe print history to bring it up to date. In some scenarios, the printdevice may be configured to update the print history after each documentfile is printed. In such a case, when the print job is interrupted, theprint history will already be up to date. Alternatively and/oradditionally, the print device may be configured to update the printhistory after the entire print job is complete. In such a case, theprint device may update the print history with the filenames andassociated timestamps for all documents that have been printed rightbefore the print job is interrupted.

Alternatively, and/or additionally, the print device may determine tohandle an interrupted print job differently, depending on whether theinterrupted print job is derived from a regular print demand sent to theprint device or from a document file in the portable memory device. Forexample, if a print job that is interrupted or suspended is derived froma regular print demand, the print device may choose to handle it withnormal interruption handling functions in the print device, ifavailable. If a print job that is interrupted or suspended is derivedfrom a document file in the portable memory device, the print device maychoose to handle it with updating the print history as illustratedabove.

When the user unplugs the portable memory device due to a print jobinterruption, and plugs in the same portable memory device into a secondprint device, the second print device may immediately detect that aportable memory device is plugged in 301 (in FIGS. 3A and 3B), andsubsequently access the print history associated with the user from thedata store 303 via the network, retrieve the print instructions andfilenames from the portable memory device 304, 305 and determine whichdocument files to print 306. Because the print history reflects theentire print operations before the first print device was stopped, byreading the print history, the second print device will be able toresume the printing of the remaining document files on the portablememory device that would have been printed by the first print device ifthe previous print job had not been interrupted. After the remainingdocument files are printed, the second print device may update the printhistory in the same manner described in FIG. 6.

In some scenarios, a user may plug a portable memory device in the printdevice, where the portable memory device contains a document file thatwas interrupted previously. The print device may check the print historyand identify the previously interrupted document file. As describedearlier in this document, the print device may further determine whetherthere is a current active print job in the print device, and if so, maydetermine to suspend the current print job and resume to print thedocument file from the portable memory device that was previouslyinterrupted. Alternatively, the print device may determine that thepriority of the current active print job in the print device is higherthan that of the previously interrupted job derived from the documentfile on the portable memory device. In such case, the print device maydetermine to continue finishing the current print job before resuming toprint the document file from the portable memory device that waspreviously interrupted. In these scenarios, the methods for updatingprint history and handling of output paper trays may also be implementedin similar manners as described earlier in this document.

FIG. 7 depicts an example of internal hardware that may be included inany of the electronic components of the system, the print device oranother device in the system such as the system 120, 121 (in FIG. 1). Anelectrical bus 700 serves as an information highway interconnecting theother illustrated components of the hardware. Processor 705 is a centralprocessing device of the device, configured to perform calculations andlogic operations required to execute programming instructions. As usedin this document and in the claims, the terms “processor” and“processing device” may refer to a single processor or any number ofprocessors or processor cores in one or more processors. The device mayinclude read only memory (ROM) 710, random access memory (RAM) 715, orother types of memory devices, such as flash memory, hard drives andother devices capable of storing electronic data. A memory device mayinclude a single device or a collection of devices across which dataand/or instructions are stored.

An optional display interface 730 may permit information from the bus700 to be displayed on a display device 735 in visual, graphic oralphanumeric format. An audio interface and audio output (such as aspeaker) also may be provided. Communication with external devices mayoccur using various communication ports or devices 740 such as aportable memory device reader/writer, a transmitter and/or receiver, anantenna, an RFID tag and/or short-range or near-field communicationcircuitry. The communication device 740 may be attached to acommunications network, such as the Internet, a local area network or acellular telephone data network.

The hardware may also include a user interface sensor 745 that allowsfor receipt of data from input devices such as a keyboard 750, a mouse,a joystick, a touchscreen, a remote control, a pointing device, a videoinput device (camera) and/or an audio input device (microphone). Variousmethods of activation, validation and/or authorization described in thisdocument may be performed by the central processing device 705 or acontroller 720.

The above-disclosed features and functions, as well as alternatives, maybe combined into many other different systems or applications. Variouscomponents may be implemented in hardware or software or embeddedsoftware. Various presently unforeseen or unanticipated alternatives,modifications, variations or improvements may be made by those skilledin the art, each of which is also intended to be encompassed by thedisclosed embodiments.

The invention claimed is:
 1. A document printing system, comprising: aprint device comprising: a port configured to communicate with aportable memory device, a print engine, a processing devicecommunicatively coupled to the port and the print engine, and anon-transitory, computer-readable medium containing programminginstructions that are configured to cause the processing device to:cause the print device to perform a first print job, detect a triggerevent by determining that a portable memory device has becomecommunicatively connected to the port, upon detecting the trigger event,retrieve a digital document file to be printed and a print instructionfrom the portable memory device, determine that the first print job isbeing performed in the print device, suspend performance of the firstprint job, determine a second print job that is derived from the digitaldocument file, in response to determining the second print job,automatically cause the print engine to perform the second print jobbased on the print instruction, wherein the programming instructions forperforming the second print job comprise programming instructionsconfigured to: determine an output paper tray to which a documentrepresented in the digital document file is to be printed; and  printthe document to the output paper tray, wherein the programminginstructions for printing the document to the output paper tray compriseprogramming instructions configured to:  determine an original papertray to which the first print job was directed, and  if the output papertray is the same as the original paper tray, output a separator sheetbefore printing the document to the output paper tray, detect that thesecond print job has been completed or interrupted, and upon detectingthat the second print job has been completed or interrupted,automatically resume the first print job.
 2. The system of claim 1,wherein: the portable memory device contains a folder of a designatedname that contains the digital document file; and the programminginstructions for detecting the trigger event also comprise programminginstructions configured to detect the folder of the designated name. 3.The system of claim 1, wherein the programming instructions fordetermining the output paper tray comprise programming instructionsconfigured to: automatically determine the output paper tray based on atleast one of the following: a capability of the output paper tray, arequirement of the second print job, or the print instruction; or prompta user to manually select the output paper tray.
 4. The system of claim2, wherein the print instruction is encoded to a folder name of thefolder of the designated name or a folder name of a subfolder of thefolder of the designated name.
 5. The system of claim 4, wherein: thefolder name is indicative of a number of copies to be printed; and theprogramming instructions for printing performing the second print jobcomprise programming instructions configured to print the number ofcopies of a document represented in the digital document fileautomatically.
 6. The system of claim 1, wherein the programminginstructions for detecting that the second print job was completed orinterrupted comprise programming instructions configured to cause theprocessing device to detect that the portable memory device has becomedisconnected from the port.
 7. The system of claim 1, further comprisinga data store containing a print history, wherein: the print devicefurther comprises a communication port for communicating with the datastore and obtaining information from the print history; and theprogramming instructions for retrieving the digital document file to beprinted from the portable memory device comprise programminginstructions configured to: access the print history from the datastore, and use the print history to determine that the digital documentfile has not been printed and retrieve that digital document file to beprinted.
 8. The system of claim 7, wherein the programming instructionsfurther comprising additional programming instructions configured to:upon detecting that the second print job has been completed, transmit acommunication to the data store to update the print history to reflectthat the digital document file is printed.
 9. The system of claim 1,wherein: the programming instructions for retrieving the digitaldocument file from the portable memory device also comprise programminginstructions for retrieving additional digital document files from theportable memory device; the second print job is also derived from theadditional digital document files; and the programming instructions fordetecting that the second print job has been completed compriseprogramming instructions configured to: (i) detect that the digitaldocument file in the portable memory device is printed, (ii) check theadditional digital document files to determine a next digital documentfile to be printed, (iii) print a document represented in the nextdigital document file based on the print instruction, (iv) repeat steps(ii) and (iii) until all documents of the additional digital documentfiles are printed, and (v) determine that the second print job has beencompleted.
 10. A method for automatically processing job interruptionsin a print system, comprising, by a processing device of a print device:cause the print device to perform a first print job; detecting a triggerevent by determining that a portable memory device has becomecommunicatively connected to a port of the print device; upon detectingthe trigger event, retrieving a digital document file to be printed anda print instruction from the portable memory device; determining thatthe first print job is being performed in the print device; suspendingperformance of the first print job; determining a second print job thatis derived from the digital document file; in response to determiningthe second print job, automatically causing a print engine of the printdevice to perform the second print job based on the print instruction,wherein performing the second print job comprises: determining an outputpaper tray to which a document represented in the digital document fileis to be printed, and printing the document to the output paper tray,wherein printing the document to the output paper tray comprises:determining an original paper tray to which the first print job wasdirected; and if the output paper tray is the same as the original papertray, outputting a separator sheet before printing the document to theoutput paper tray; detecting that the second print job has beencompleted or interrupted; and upon detecting that the second print jobhas been completed or interrupted, automatically resuming the firstprint job.
 11. The method of claim 10 wherein the portable memory devicecontains a folder of a designated name that contains the digitaldocument file, further comprising detecting the folder of the designatedname.
 12. The method of claim 10, wherein determining the output papertray comprises: automatically determining the output paper tray based onat least one of the following: a capability of the output paper tray, arequirement of the second print job, or the print instruction; orprompting a user to manually select the output paper tray.
 13. Themethod of claim 11, wherein the print instruction is encoded to a foldername of the folder of the designated name or a folder name of asubfolder of the folder of the designated name.
 14. The method of claim13, wherein performing the second print job comprises printing a numberof copies of a document represented in the digital document fileautomatically, wherein the number of copies to be printed is indicatedin the folder name.
 15. The method of claim 10, wherein detecting thatthe second print job was completed or interrupted comprises detectingthat the portable memory device has become disconnected from the port.16. The method of claim 10, wherein retrieving the digital document fileto be printed from the portable memory device comprises: accessing aprint history from a data store; and using the print history todetermine that the digital document file has not been printed andretrieving that digital document file to be printed.
 17. The method ofclaim 16, further comprising, by the processing device of the printdevice: upon detecting that the second print job has been completed,transmitting a communication to the data store to update the printhistory to reflect that the digital document file is printed.
 18. Themethod of claim 10, wherein: retrieving the digital document file fromthe portable memory device also comprises retrieving additional digitaldocument files from the portable memory device, and the second print jobis also derived from the additional digital document files; anddetecting that the second print job has been completed comprises: (i)detecting that the digital document file in the portable memory deviceis printed, (ii) checking the additional digital document files todetermine a next digital document file to be printed, (iii) printing adocument represented in the next digital document file based on theprint instruction, (iv) repeating steps (ii) and (iii) until alldocuments of the additional digital document files are printed, and (v)determining that the second print job has been completed.